1、内核模块的定义
	内核模块是一段单独编译的内核代码，它可以在需要时被加入内核，在不需要时从内核卸载
2、模块初始化
	模块初始化原型是int __init init_module(void)，此函数返回0表示执行成功，__init表示此函数只在模块加载时执
行一次（它指定将函数链接到一个特定的数据段中，模块加载完成后会释放此数据段的内存），函数名可以随便取，使用
module_init()宏定义导出此函数即可（此宏的本质是为模块入口函数取一个别名：init_module）。
3、模块清理
	模块卸载函数的原型是void __exit cleanup_module(void)，__exit表示此函数只在模块卸载时执行一次（它指定将函
数链接到一个特定的数据段中，对于不需要卸载的模块，如编译进内核的模块，则不链接此数据段），函数名可以随便取，
使用module_exit()宏定义导出此函数即可（此宏的本质是为模块出口函数取一个别名：cleanup_module）。
4、LICENSE和作者信息
	//表示遵循GPL开源协议
	MODULE_LICENSE("GPL");
	//模块作者信息
	MODULE_AUTHOR("liao fei");
	//模块描述
	MODULE_DESCRIPTION("module test");
	//模块别名
	MODULE_ALIAS("module");
5、管理内核模块的指令
	insmod 加载内核模块，必须先加载此模块所依赖的模块才能加载此模块
	modprobe 智能加载内核模块，可以自动解决模块间的依赖问题，在使用前建议先执行 depmod，此外还需要使用 $(MAK
E) -C $(KERNELDIR) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- M=$(PWD) INSTALL_MOD_PATH=$(ROOTFS) modules_i
nstall 命令对模块进行安装操作
	rmmod 卸载模块，必须要先卸载依赖于此模块的模块才能卸载此模块
	modinfo 查看模块的详细信息
	depmod 更新模块依赖信息
